#include <stdio.h>
//https://leetcode.cn/problems/count-complete-subarrays-in-an-array/description/
//统计完全子数组的数目
//给你一个由 正 整数组成的数组 nums 。
//如果数组中的某个子数组满足下述条件，则称之为 完全子数组 ：
//子数组中 不同 元素的数目等于整个数组不同元素的数目。
//返回数组中 完全子数组 的数目。
//子数组 是数组中的一个连续非空序列

int countCompleteSubarrays(int* nums, int numsSize){
    int count = 0;
    int dis = 0;

    int arr1[2001] = {0};
    //找整个数组
    for(int i = numsSize - 1; i >= 0; i--)
    {
        if(arr1[nums[i]] == 0)
        dis++;
        arr1[nums[i]] += 1;
    }

    //找子数组
    for(int i = 0; i < numsSize && arr1[nums[i]]; i++)
    {
        count++;
        int arr2[2001] = {0};
        for(int j = numsSize - 1; j >= i; j--)
        {
            arr2[nums[j]] += 1;
            if(arr2[nums[j]] == arr1[nums[j]])
            break;
            else
            count++;
        }
        arr1[nums[i]]--;
        if(arr1[nums[i]] == 0)
        break;
    }

    return count;
}

int main()
{
	int arr[] = {5, 5, 5, 5};
	printf("%d\n", countCompleteSubarrays(arr, 4));
	return 0;
}